{{tag> grapheurs éducation logiciels_pour_le_lycée}}

----

====== QtiPlot ======

**QtiPlot** est un logiciel de traitement et de visualisation de données.

La volonté affichée est de fournir une alternative libre (licence [[http://www.gnu.org/licenses/gpl.html|GNU General Public License]]) à des logiciels similaires mais propriétaires et payants tels que: [[http://www.originlab.com/|Origin]], [[http://www.systat.com/products/sigmaplot/|SigmaPlot]] ou encore [[http://pagesperso-orange.fr/jean-michel.millet/regressi.html|Regressi]].

{{http://soft.proindependent.com/doc/manual-en/pics/exemple-plot3d.png}}

===== Installation du binaire =====

==== Prérequis ====
  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe et Multiverse]].

==== Installation depuis les dépôts ====
Depuis [[:gutsy|Ubuntu 7.10 (Gutsy Gibbon)]], **QtiPlot** est disponible dans les dépôts [[:depots#universe_et_multiverse|Universe]].

Il suffit alors d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]][[apt://qtiplot|qtiplot]].

La version de **QtiPlot** disponible dans les dépôts n'est généralement pas la dernière version disponible.

==== Installation de la dernière version depuis le site officiel (Payant) ====
Il est possible de télécharger la dernière version de **QtiPlot** (sous la forme de paquets) depuis le [[http://soft.proindependent.com/qtiplot.html|site officiel]].

<note important>Bien que **QtiPlot** soit libre (licence [[http://www.gnu.org/licenses/gpl.html|GNU General Public License]]), les paquets disponibles sur le site officiel sont payants. Les tarifs sont disponibles à l'adresse : [[http://soft.proindependent.com/pricing.html]].</note>

Se référer au site officiel pour l'installation des paquets officiels : [[http://soft.proindependent.com/qtiplot.html]].
===== Installation à partir des sources =====
==== Préparation ====
S'il  existe une compilation/installation qui n'est pas triviale, c'est bien celle de QtiPlot. Mais ce grapheur est tellement adapté à la production de documents scientifiques qu'il me semble important de s'y pencher. Précisons que la compilation s'est effectuée correctement avec Jaunty (9.04), Lucid (10.04) et Maverick (10.10).
C'est parti :
==== Installation des dépendances ====
<note important>
- QtiPlot peut se compiler sans le support des scripts Python mais il lui faut absolument muParser !

- Il se peut que vous ayez besoin d'autres packages que ceux indiqués ci-dessus.

- Les traductions ne sont pas mises à jour.

- Il se peut qu'un lien soit cassé si une version ultérieure est sortie. Récupérez alors le fichier directement en visitant la page Web.
</note>

Commençons par installer les bibliothèques manquantes mais disponibles dans Jaunty, Lucid et Maverick : [[apt://libboost-all-dev,libgsl0-dev,libqt4-dev,docbook-utils,dblatex,libpng12-dev,libtool,zlib1g-dev,qt4-dev-tools,python-all-dev,libxext-dev,libqtassistant-dev|libboost-all-dev,libgsl0-dev,libqt4-dev,docbook-utils,dblatex,libpng12-dev,libtool,zlib1g-dev,qt4-dev-tools,python-all-dev,libxext-dev,libqtassistant-dev]].

  * [[http://www.zlib.net|zlib]] permet de compresser les fichiers projets de QtiPlot,
  * [[http://www.gnu.org/software/gsl/|gsl]] est une librairie de manipulation de données scientifiques (nombres complexes, FFT, intégration, interpolation, etc.),
  * [[http://www.libpng.org/pub/png/libpng.html|libpng]] est utilisé pour l'export des graphes au format png. Nécessite zlib.

=== Installation de la librairie libEMF ===
  > cd /tmp/
  > wget http://downloads.sourceforge.net/project/libemf/libemf/1.0.4/libEMF-1.0.4.tar.gz
  > tar xvzf libEMF-1.0.4.tar.gz
  > cd libEMF-1.0.4
  > ./configure; make; sudo make install

=== Installation de la librairie Quazip ===

  > cd /tmp/
  > wget http://downloads.sourceforge.net/project/quazip/quazip/0.3/quazip-0.3.tar.gz
  > tar xvzf quazip-0.3.tar.gz
  > cd quazip-0.3
  > qmake ; make; sudo make install

=== Installation de muParser (>=1.32) ===
  > cd /tmp/
  > wget http://downloads.sourceforge.net/project/muparser/muparser/Version%201.34/muparser_v134.tar.gz
  > tar xvzf muparser_v134.tar.gz
  > cd muparser_v134
  > ./configure; make; sudo make install

=== Installation de la dernière version de sip (>=4.11) ===

  > cd /tmp/
  > wget http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.12.1.tar.gz
  > tar xvzf sip-4.12.1.tar.gz
  > cd sip-4.11.1/
  > python configure.py; make; sudo make install

=== Installation de la dernière version de PyQt (>=4.7) ===
**Attention** : ce logiciel nécessite sip-4.12 et sa compilation est assez longue

  > cd /tmp/
  > wget http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.8.3.tar.gz
  > tar xvzf PyQt-x11-gpl-4.8.3.tar.gz
  > cd PyQt-x11-gpl-4.8.3
  > python configure.py; make; sudo make install

==== Installation des dépendances tierces ====
Créez un répertoire QtiPlot :

  > mkdir QtiPlot
  > cd QtiPlot

Ce répertoire est important. Nous décompresserons les autres logiciels dedans !!!

Nous allons maintenant compiler toutes ces bibliothèques

=== Compilation de tamu_anova ===
       
  > wget http://www.stat.tamu.edu/~aredd/tamuanova/tamu_anova-0.2.tar.gz
  > tar xvzf tamu_anova-0.2.tar.gz
  > cd tamu_anova-0.2
  > ./configure 
  > make

=== Compilation de QTexEngine ===
QTexEngine permet d'utiliser LaTeX dans QtiPlot.

  > cd ..
  > wget http://download.berlios.de/qtiplot/QTeXEngine-0.3-opensource.zip
  > unzip QTeXEngine-0.3-opensource.zip
  > cd QTeXEngine
  > qmake
  > make
    
=== Compilation de AlGlib ===

  > cd ..
  > wget http://www.alglib.net/translator/re/alglib-2.6.0.cpp.zip
  > unzip alglib-2.6.0.cpp.zip
  > cd cpp
  > chmod +x build
  > ./build gcc


Vous devez avoir l'arborescence suivante :

  QtiPlot
       |-- tamu_anova-0.2
       |-- QTexEngine
       |-- cpp
==== Compilation de QtiPlot ====

Téléchargez QtiPlot sur le site de [[http://download.berlios.de/qtiplot/qtiplot-0.9.8.5.tar.bz2 | proindependant]]. La dernière version est la 0.9.8.5. Décompressez l'archive dans ce répertoire ''QtiPlot''. Ce répertoire (qtiplot-0.9.8.5) est appelé QTI_ROOT dans le fichier de configuration ci-dessous.
Désormais, vous devez avoir une arborescence du genre :

  QtiPlot
       |-- tamu_anova-0.2
       |-- QTexEngine
       |-- cpp
       |-- qtiplot-0.9.8.5
       
Si vous avez déjà compilé d'anciennes version de QtiPlot (par exemple la 0.9.8.4), elles doivent aussi apparaitre dans ce répertoire **QtiPlot**.

=== Modification du fichier qwtplot3d.pro ===

Éditez le fichier 3rdparty/qwtplot3d/qwtplot3d.pro et rajouter la ligne suivante à la ligne 17 :

  unix:CONFIG  += staticlib
  
=== Modification du fichier qtiplot/qtiplot.pro ===

Commentez les lignes 232 à 242 :

  232 #QT          += sql
  233 #LIBS        += src/plugins/libQtiPlotdBasePlugin.a
  234 #LIBS        += src/plugins/libQtiPlotDatabasePlugin.a                                                                                                   
  235 #LIBS        += src/plugins/libQtiPlotCsvPlugin.a
  236 #LIBS        += src/plugins/libQtiPlotTexPlugin.a
  237 #LIBS        += src/plugins/libQtiPlotOdsPlugin.a
  238 #LIBS        += src/plugins/libQtiPlotExcelPlugin.a
  239 #LIBS        += src/plugins/libQtiPlotOriginPlugin.a
  240 #LIBS        += src/plugins/libQtiPlotEmfExportPlugin.a
  241 #LIBS        += ../3rdparty/quazip/lib/libquazip.a
  242 #LIBS        += ../3rdparty/EmfEngine/libEmfEngine.a

=== Configuration du fichier build.conf ===
Il faut ensuite créer un fichier **build.conf** dans QTI_ROOT à partir d'un fichier exemple fourni **build.conf.example**. Voici le mien :
<code>
isEmpty( QTI_ROOT ) {
  message( "each file including this config needs to set QTI_ROOT to the dir containing this file!" )
}

##########################################################
##     System specific configuration
##########################################################

SYS_INCLUDEPATH = -I/$$QTI_ROOT/tmp/qtiplot
SYS_LIBS = -L/opt/local/lib

MUPARSER_INCLUDEPATH = /usr/local/include
MUPARSER_LIBS = -lmuparser
GSL_LIBS = -lgsl -lgslcblas

#BOOST_LIBS = -lboost_date_time-mt -lboost_thread-mt

QWT_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwt/src
QWT_LIBS = $$QTI_ROOT/3rdparty/qwt/lib/libqwt.a

QWT3D_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwtplot3d/include
QWT3D_LIBS = $$QTI_ROOT/3rdparty/qwtplot3d/lib/libqwtplot3d.a

ZLIB_INCLUDEPATH = $$QTI_ROOT/3rdparty/zlib/

#XLS_INCLUDEPATH = /usr/local/ExcelFormat
#XLS_LIBS = -L/usr/local/ExcelFormat/ -lbasicexcel

QUAZIP_INCLUDEPATH = /usr/local/include/quazip
QUAZIP_LIBS = -lquazip

TEX_ENGINE_LIBS = ../../../QtiPlot/QTeXEngine/libQTeXEngine.a
TEX_ENGINE_INCLUDEPATH = ../../../QtiPlotQTeXEngine/src

TAMUANOVA_INCLUDEPATH = ../../tamu_anova-0.2/
#TAMUANOVA_INCLUDEPATH = $$QTI_ROOT/3rdparty/tamu_anova/
TAMUANOVA_LIBS = ../../tamu_anova-0.2/libtamuanova.a

# include path. leave it blank to use SYS_INCLUDE
#LIBORIGIN_INCLUDEPATH = $$QTI_ROOT/../liborigin/liborigin2
# link statically against a copy in 3rdparty/
#LIBORIGIN_LIBS = $$QTI_ROOT/../liborigin/liborigin2/liborigin2.a
#LIBORIGIN_LIBS = -lorigin2

LIBPNG_LIBS = -lpng

ALGLIB_INCLUDEPATH = ../../../../QtiPlot/cpp/src
ALGLIB_LIBS = ../../../QtiPlot/cpp/out/libalglib.a

##########################################################
## python - only used if python is needed
##########################################################

# the python interpreter to use
# (unix only, windows will use what ever is configured to execute .py files!)
PYTHON = python

##########################################################
## Qt tools - allows to use specific versions
##########################################################

LUPDATE = lupdate
LRELEASE = lrelease

############################################################
##  Target specific configuration: configure Qtiplot itself
############################################################

contains( TARGET, qtiplot ) {
  # building without muParser doesn't work yet
  SCRIPTING_LANGS += muParser
  SCRIPTING_LANGS += Python

  # a console displaying output of scripts; particularly useful on Windows
  # where running QtiPlot from a terminal is inconvenient
#  DEFINES         += SCRIPTING_CONSOLE
#  DEFINES		  += XLS_IMPORT

 #DEFINES         += QTIPLOT_PRO

  # Uncomment the following line if you want to perform a custom installation using the *.path variables defined in ./qtiplot.pro.
 # CONFIG          += CustomInstall

  # Uncomment the following line if you want to build QtiPlot as a browser plugin (not working on Internet Explorer).
 #CONFIG          += BrowserPlugin
  
  CONFIG          += release
#  CONFIG          += debug
}
</code>

=== Compilation ===
Voilà, a priori, vous êtes parés pour la compilation de QtiPlot. Se mettre dans QTI_ROOT puis :

  > qmake qtiplot.pro
  > make

La compilation vous crée un fichier exécutable nommé **qtiplot** qui se trouve dans QTI_ROOT/qtiplot. Vous pouvez installer ce binaire plus les docs, traductions et pages de manuel avec la commande :
  > sudo make install
Bon courage...
<note warning>Ce qui ne fonctionne toujours pas :

1. Le plugin pour firefox

2. La mise à jour des traductions
</note>
=== Soucis ===
  * QtiPlot pose plein de soucis lorsque l'on n'a pas bien installé les parties tierces. Attention donc à être bien rigoureux.
  * Un **make clean** provoque l'erreur suivante :
  
    make[1]: entrant dans le répertoire « /home/raoul/QtiPlot/qtiplot-0.9.8.4/manual »
    make[1]: *** Pas de règle pour fabriquer la cible « clean ». Arrêt.
    make[1]: quittant le répertoire « /home/raoul/QtiPlot/qtiplot-0.9.8.4/manual »
    make: *** [sub-manual-clean] Erreur 2

 Pour la contourner, modifier le fichier QTI_ROOT/qtiplot.pro en commentant (avec un #), la ligne N°4 qui débute par **manual**
  * Au démarrage, QtiPlot vous propose d'aider le développeur en faisant une donation puis vous dirige vers le site WEB. Après avoir fait un don, vous pouvez supprimer ces deux fonctionnalités : commentez la ligne N°15958 du fichier //ApplicationWindow.cpp// avec deux shlashes ainsi que la ligne N°61 du fichier //QtiPlotApplication.cpp// qui se trouvent dans **QTI_ROOT/qtiplot/src/core/**.
===== Utilisation =====
Un excellent manuel se trouve [[http://soft.proindependent.com/doc/manual-en/index.html|ici]]. Il est aussi fourni sous forme PDF avec les sources.

===== Désinstallation =====

=== Version installée via un paquet ===
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.


=== Version installée depuis les sources ===

Se placer dans le répertoire où vous avez décompressé QtiPlot (appelé QTI_ROOT plus haut) puis :
  > sudo make uninstall


===== Voir aussi =====

  * [[http://soft.proindependent.com/qtiplot.html|Site officiel]] [en]
  * [[http://soft.proindependent.com/doc/manual-en/index.html|Manuel de qtiplot]] [en]

----


//Contributeurs : [[:utilisateurs:Volfoni54]]//

